1. Field
The embodiments discussed herein relate to Direct Memory Access (DMA), and more particularly, to a method and apparatus for dynamically determining priorities of DMA request blocks based on Data Transfer Amounts (DTAs).
2. Description of the Related Art
A Direct Memory Access (DMA) method is a data transfer method performed between a memory and a DMA request block without control of a Central Processing Unit (CPU). In order to use the DMA method, a DMA control module must be added to a system bus. The DMA control module processes a portion of functions of the CPU instead of the CPU by receiving a system control right from the CPU. That is, the CPU leaves data transfer to the DMA control module, and DMA control module processes the data transfer instead of the CPU. In this case, the DMA control module directly transmits data to the memory without being controlled by of the CPU, and if all data is completely transmitted, the DMA control module generates an interrupt and transmits the interrupt to the CPU.
In particular, in a DMA control module having a plurality of DMA request blocks, if each DMA request block is an Input/Output (I/O) device, such as a Liquid Crystal Display (LCD), only data transfer is the purpose of the DMA control module, and fixed priorities of the I/O devices are typically set in advance. Thus, if a DMA request is input from an I/O device having higher priority during data transfer between a memory and an I/O device having lower priority, the DMA control module stops the data transfer between the memory and the I/O device having lower priority, stores information on data transmitted till the moment in a temporary buffer, and processes data transfer between the memory and the I/O device having higher priority. If the data transfer between the memory and the I/O device having higher priority ends, the DMA control module resumes the data transfer between the memory and the I/O device having lower priority based on the information stored in the temporary buffer.
However, in a Multiprocessor System on Chip (MPSoC) environment in which DMA request blocks including one or more programmable processors, e.g. a Digital Signal Processor (DSP), an audio processor, and/or a video processor, are contained, a large amount of data transfer is necessary, and thus, a temporary buffer with large capacity is needed to store information on data transmitted till the moment. However, it is not preferable in terms of cost to add an additional buffer. Thus, in the MPSoC environment, it is not preferable to set fixed priorities as in the case of the I/O devices.